home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / mxcode / ampegsrc / encodsrc / isorel.txt < prev    next >
Text File  |  1993-10-15  |  13KB  |  378 lines

  1.  üÖü üÖü  !BBäx!!!BBäx!BBäx"""DDêp""DDêp>"""BBääêp""!"BDäêêp>IÉÆ|      ° @≥î>00>><Dêx  !BBäx""DDêp&<"DDêê&22TTêêê$> $< @äêp>          ⁿBBBB<  @@Ç****DDDDDDDU¬U¬U¬U¬U¬U¬U¬▌w▌w▌w▌w▌w▌w▌w°°°≥■°°≥≥■≥≥■■°°°    ≤  ≤  ≤≤         °                     ≡≡≡≡≡≡≡≡≡≡≡≡≡≡       ;DDD;    $"Bdÿ>@@@>||>Ac]AAA1N"A""2,  `1NA"*III*<Bü üB<<BüüüB<A" \"QIE" < <BBBB  @@    ~ ?  @ÇB$$B ""A$$"AII6 üBr»$**IIII**ccregion.  The region is defined as any pixel of
  2.             OldColor which has a path of pixels of OldColor or NewColor
  3.             with sides touching back to the seed point, (XSeed, YSeed).
  4.             Therefore, only pixels of OldColor are modified and no other
  5.             information is changed.
  6.  
  7.             SEE ALSO
  8.  
  9.             DRWFILLBOX, DRWFILLCIRCLE, DRWFILLELLIPSE, FILLAREA,
  10.             FILLCONVEXPOLY, FILLPAGE, FILLPOLY, FILLSCREEN, FILLVIEW,
  11.             SETVIEW
  12.  
  13.             EXAMPL(HNxHHO$B<BBBB<$<BBBB<<BBBB<$BBBBBF:0BBBBF:$BBBF:B<""AAA""AAAAA"<B@@B<" <2\A">>xDDxDNDD <` <>BB= > <BBBB< BBBBF:2L\bBBBB&AaQIECA8$>""">0@@A>@@@ b$(. b$(*
  14.     $    $    $DDDDDDD¬U¬U¬U¬U¬U¬U¬Uw▌w▌w▌w▌w▌w▌w▌°°°⌠ⁿ°°⌠⌠ⁿ⌠⌠ⁿⁿ°°°    ≈  ≈  ≈≈         °                     ≡≡≡≡≡≡≡≡≡≡≡≡≡≡       7HH7"B\DBBRL~BB@@@@@@?R~!!~?DDDD8BBBB|@@Ç>P>III>"AA""AAA"Uw<DDDD86II6"EIQ"\ @@ "AAAAA> >     hH02L2L$$<H(,$<>>>>>>>         VMODE=VIDEOMODEGET
  15.             IF WHICHVGA = 0 THEN STOP
  16.             DUMMY=RES640
  17.             SETVIEW 100, 100, 539, 379
  18.             FILLVIEW 10
  19.             WHILE INKEY$ = ""
  20.             WEND
  21.             VIDEOMODESET VMODE
  22.             END
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.                                                                          63
  40.  
  41.  
  42.  
  43.  
  44.  
  45.           FONTGETINFO
  46.  
  47.             PROTOTYPE
  48.  
  49.             SUB FONTGETINFO (Width%, Height%)
  50.  
  51.             INPUT
  52.  
  53.             no input parameters
  54.     WEND
  55.             MOUSEEXIT
  56.             VIDEOMODESET VMODE
  57.             END
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.                                                                          86
  99.  
  100.  
  101.  
  102.  
  103.  
  104.           MOUSECURSORDEFAULT
  105.  
  106.             PROTOTYPE
  107.  
  108.             SUB MOUSECURSORDEFAULT ()
  109.  
  110.             INPUT
  111.  
  112.             no input parameters
  113.  
  114.             OUTPUT
  115.  
  116.             no value returned
  117.  
  118.             USAGE
  119.  
  120.             MOUSECURSORDEFAULT defines the mouse cursor to be a small
  121.        ,K$╖┼╘╤░XQ)σ┤ö≡÷┴─┤àñT┘,╘¬àñX9╘⌠àñ\9╘UÜ╢≤`9╘4a╘d9╘UTa╘h9╘ta╘l9╘Uöa╘p9╘┤a╘t┘PT±x┴îÇ╖0▓ïα│ÅαU┤ôα╡ùα╢¢α╖úΓ╘pǺΓ╕¡αë ╚┴πì°sKÉφb<$⌡▌ë     φë φë I1φë  Eφë $YφÆë (mφë ,üφë 0$òφë á⌐φë ñ╜φë I¿╤φë ¼σφë ░∙φÆë 4²ë ┤!²ë ╕$5²ë ╝I²ë └]²ë ⌐8q²ë <àⁿΦiǬ∙PÖÇ ¥Ç
  122. ⁿ░╨â@%8@ΓΦá╝╤░≡cÑÅ*$░╕≡ż≡τ╥m¿⌡ε    ╨@#µ≈$âh$âαra╨à`¥è∩Ç%Ç +─▀ TîcOî∩â°1<@  [$¿Ç¼ MMl·0ƒ Y¼─!%6a▐è ¥ì ßá+?±  P<îaTTV ╪iÇ¡≥░ `_ñ»%Çá᪠P█º»ε`éa∙É%H«┴íA%Gár∙É
  123. iw∙Éiφ`╧≥≡╤Çmⁿ▒
  124. ]ÆAáσw7░⌡∩    $·╟Ç√É&^`  ┐ $ⁿ  $■ $╒ nk$J-ÉQ1£PéBù »0αQ/Ñ4╜£░ºP≈Ñ4Ç⌡$(ª▀$@C]Æé≈└╕_SÇçÑ4=iÉ⌠ä╣<_np@Ñ45ò▒Y3ü¼Qí░.i>╠@5+┴╙É╛╙$@ #┴@«╦
  125. $╤
  126. #@Ñú4,p&e÷ü¼_ÇQºÑ4òQ  ü@;¡_áQ@e╠≥@mp!┤a╘O░√`Pñź ÇT°8ÿ!¼Åñ$½╙"q¿ PñCÇ¿α√└╥░eT"ß<p°%Pæ(╧%pδ¥/OêW0Ǽbφ φ B@[â¼8â≥µ≤(    ¿⌡%(Ç∩áTÿp+ óÜ▓0!Σ±(1±░┤ÖÇD└D0Å╡`   $ «îO@╧1
  127. a╝╤j-0ñ│`@╖bΦaT1═⌠╝╤Σ²¼±,1öíî9lÿ28ÇÅ`Γî¿P²$,N0┴O0a╫δ≤0σú`°î╖#0δ≡└X▄1»Σî(▒¥Ç█Ñ"qá√1CÇú╟╨º Å
  128. FT Θ²î└1ÇY0    w ²à░$@AÅ`╦Φ¼╘`▄1A  }┐Ç*5 ΩSδδî`¼îaδæ¼î5 1¿⌡Ω╜⌠ ¼¥╬ü└Qî1S╛≤î9╨iÇ,∙PU(}Ç$üÇ àÇ`σìÇ`QαÜBO$%ÿÇ╧"$Ç«Ç]É.┬\`%WÉ$  W0 ÄâO0]αG┬ur╩░£▒Q¢ú╔Ç≡°s?`X0╘`@ µWâ@╣aá εdq`¥9?Ç&+o0µyÄΣAÅuV(7P╬±@IdQ╕@Å┤@;Ç▓?Çò│CÇ┤╟╨╡KÇÄ30ⁿφ° ó╬ì+]Ä╦≡     Mö╝σ ²y5<!└▀óâ╝É3~mp    $<╛≤9Æ-2ⁿ≡@T,╞Σa,)Pæ└¥#¼╪Q┤S(¼@Aîa≡╤@Ö²±⌠KëD─┴▒▀0╨Ñ$╩-0 ╨ê*╙▓edm`î=3Kß-10è=≥≤²└£mîjy ÿe²ⁿ╨i╕e▓ΣmαÖ╢C%Ç*ê*0 EátQZ`mÄLP%    °üⁿªüNQ∙  T¿<qtWΩc z░ÅÇñΩçǪçÇ«;└<┐á¼¥. á?<Σscî)áí := 0;
  129.       end;
  130.     end;
  131.   end;
  132.   WaitToGo;
  133. end; { UserLineStylePlay }
  134.  
  135.  
  136. procedure SayGoodbye;
  137. { Say goodbye and then exit the program }
  138. var
  139.   ViewInfo : ViewPortType;
  140. begin
  141.   MainWindow('');
  142.   GetViewSettings(ViewInfo);
  143.   SetTextStyle(TriplexFont, HorizDir, 4);
  144.   SetTextJustify(CenterText, CenterText);
  145.   with ViewInfo do
  146.     OutTextXY((x2-x1) div 2, (y2-y1) div 2, 'That''s all folks!');
  147.   StatusLine('Press any key to quit...');
  148.   repeat until KeyPressed;
  149. end; { SayGoodbye }
  150.  
  151.  
  152. PROCEDURE SelectMode;
  153. VAR
  154.     choice1,choice2     : CHAR;
  155.    xsize,ysize            : WORD;
  156. BEGIN
  157.     (* Let's select a mode *)
  158.     ClrScr;
  159.     WriteLn('VESADEMO:');
  160.     WriteLn('1. 256 colors');
  161.     WriteLn('2. 32768 colors');
  162.     WriteLn('3. 65536 colors');
  163.     WriteLn('4. 16777216 colors');
  164.     WriteLn('Q uit');
  165.     WriteLn;
  166.     Write('Your choice: ');
  167.     REPEAT
  168.         ReadLn(choice1);
  169.       IF choice1 <> '1' THEN BEGIN
  170.           WriteLn('Sorry !');
  171.          WriteLn('This demo wasn''t written for more as 256 colors !');
  172.          WriteLn('You would only get a limited impression of the Hi-& TrueColor modes...');
  173.          WriteLn('Switching to 256 colors.');
  174.          choice1 := '1';
  175.       END;
  176.     UNTIL choice1 IN ['1'..'4','q'];
  177.     IF choice1 = 'q' THEN Halt;
  178.  
  179.     WriteLn;
  180.     WriteLn;
  181.     WriteLn('a. 320x200');
  182.     WriteLn('b. 640x480');
  183.     WriteLn('c. 800x600');
  184.     WriteLn('d. 1024x768');
  185.     WriteLn('e. 1280x1024');
  186.     WriteLn('Q uit');
  187.     WriteLn;
  188.     Write('Your choice: ');
  189.     REPEAT
  190.         ReadLn(choice2);
  191.     UNTIL choice2 IN ['a'..'e','q'];
  192.     IF choice2 = 'q' THEN Halt;
  193.  
  194.     CASE choice2 OF
  195.         'a' : BEGIN
  196.             xsize := 320;
  197.             ysize := 200;
  198.         END;
  199.         'b' : BEGIN
  200.             xsize := 640;
  201.             ysize := 480;
  202.         END;
  203.         'c' : BEGIN
  204.             xsize := 800;
  205.             ysize := 600;
  206.         END;
  207.         'd' : BEGIN
  208.             xsize := 1024;
  209.             ysize := 768;
  210.         END;
  211.         'e' : BEGIN
  212.             xsize := 1280;
  213.             ysize := 1024;
  214.         END;
  215.     END;
  216.     CASE choice1 OF
  217.         '1' : mode := FindVesaMode(xsize,ysize,8);
  218.         '2' : mode := FindVesaMode(xsize,ysize,15);
  219.         '3' : mode := FindVesaMode(xsize,ysize,16);
  220.         '4' : mode := FindVesaMode(xsize,ysize,24);
  221.     END;
  222.     IF mode = 0 THEN BEGIN
  223.         WriteLn('No such mode could be found !');
  224.         WriteLn('Switching to to 320x200.');
  225.         ReadKey;
  226.         mode := V320x200x256;
  227.     END;
  228. END;
  229.  
  230. begin { program body }
  231.   SelectMode;
  232.   Initialize;
  233.   ReportStatus;
  234.  
  235. {  AspectRatioPlay; }
  236.   FillEllipsePlay;
  237.   SectorPlay;
  238.   WriteModePlay;
  239.  
  240.   ColorPlay;
  241.   { PalettePlay only intended to work on these drivers: }
  242.   if (GraphDriver = EGA) or
  243.       (GraphDriver = EGA64) or
  244.       (GraphDriver = VGA) then
  245.      PalettePlay;
  246.   PutPixelPlay;
  247. {  PutImagePlay; }
  248.   RandBarPlay;
  249.   BarPlay;
  250.   Bar3DPlay;
  251.   ArcPlay;
  252.   CirclePlay;
  253.   PiePlay;
  254.   LineToPlay;
  255.   LineRelPlay;
  256. {  LineStylePlay; }
  257. {  UserLineStylePlay; }
  258.   TextDump;
  259.   TextPlay;
  260.   CrtModePlay;
  261.   FillStylePlay;
  262.   FillPatternPlay;
  263.   PolyPlay;
  264.   SayGoodbye;
  265. {  CloseGraph; }
  266.   CloseVesa;
  267. end.
  268. ***************************************************
  269.     '* SHOW D2ROTATE (ABOUT THE ORIGIN)
  270.     '****************************************************************∞╥≤c≤*φè#^│v/╒:j═φ0t+l▓ô"¬"g└≡?%ªêΣ│H╫½╫╜├¿U'╒⌐⌡ ßV?╩¬ujOΦçEZ1∞▐! ▄B╛Σ8║æ]1GlNÜ┐q▌▓;ô$ΦzE<cª*bEô#ä╧ñÅ"∩─LrdaÖ ╠º╫a^¥£å╬1~)@ëÖMδ╫0═6DäFê¬Çv┼ß╨kæpτ╪É)}ª 1w3╤╧ü⌡¥╓h▓╣≈ïÅaÑ[TⁿHqªÉ╝DKÄ─Y-∞tT╤Θ╨º╟╪.*ÇI9lΦ≈{πτcσ$τπßoFr╪╨∩┼╞╟;O2■e²LÜ4^N|╪½ÅO?╔°FOz`╟╟╟'<>>π$πΘù6·Xgî╖│°oîδπGƒd╝▀░?■╪╔_9L ⌡ôⁿq'æO▀ƒn4╔▀╚▄┼3pτ.òO°·}÷╕ⁿ±'æO?ít│!√8ßÑ≤/┐╣p┼≥┘E╦Vox╕cΦé5╟╚º╙$?√$≥ΘZεsî≡åìΓpKù¢ïß X╥ 9╞≈\µk┤O¥_ 5Üö\≤éÄ┌╤A[╤ÿáï┼éNⁿÅu16    g,%hc╙╨cD╨Vï┘R¢öKñR;8εáΣ╢╪ós╤π╡á└èxgzPÄMú╫yαºÉ+σJ¢i+▓â3╥    ═Ñ╙î^ºG▓█πérφçs %#(╗⌠?┼%u8≡6+QÉ))ò)Afw≈╣╪)B&4░åLXV:δät@Å.;5Φf╢Ät┐ΣJ╫─U8úÇ╟éö£╕p╔┴⌠vg╨╬╥é÷╪╣┬ΓI.ç≡^v╤ZΦÇ& ╒┌6ñô6XßNè╡╬E₧Ñ
  271. kIº╠▄A+╣╥éb²tæ-Y¡½αÑa═uuîÇ╢αêvhuª╡SÅ┤vèùú¥F;p<d⌐/F─d█éT%▓KΦû=q■öI┐ ┐╠6S$▒÷╚ENΩ¥Fû9╔┌R'╝ ╧φ└?g┬j▓0═/b╖₧─mûé╢┌»ÿÄë/·<éò■░╤╟╢├Xσ:╥P3Θ"╬Læsφ░┌öSö!╗¿*mN£WΣÇ£┤~#╗ææ≥RΩóh:à▌.æ≈╕▌v£äàd▒à╒├=░╖π║$howeg*╬    6ù▄ƒô╕φ░Ö╢qΘD>(w@úKεHÆ╛öúΣU
  272. éÜR╔╤W▄èê 2M%ó.▓SNÖA1ùJE╢║l]▓¿>\%└Å4ßO▄£â⌐& ê/)8vSP▀▓ôⁿææ√ü√ÑÄa⌠â╚4S╓╟P- ?Σá╕▓Næ*q╡UΘ▓≈^ñ·I.rúR&$Y^╚%è≡B┌≈Ceat
  273.     Color := RandColor;
  274.     SetColor(Color);
  275.     SetFillStyle(Random(CloseDotFill)+1, Color);
  276.     Bar3D(Random(MaxWidth), Random(MaxHeight),
  277.           Random(MaxWidth), Random(MaxHeight), 0, TopOff);
  278.   until KeyPressed;
  279.   WaitToGo;
  280. end; { RandBarPlay }
  281.  
  282. procedure ArcPlay;
  283. { Draw random arcs on the screen }
  284. var
  285.   MaxRadius : word;
  286.   EndAngle : word;
  287.   ArcInfo : ArcCoordsType;
  288. begin
  289.   MainWindow('Arc / GetArcCoords demonstration');
  290.   StatusLine('Esc aborts or press a key');
  291.   MaxRadius := MaxY div 10;
  292.   repeat
  293.     SetColor(RandColor);
  294.     EndAngle := Random(360);
  295.     SetLineStyle(SolidLn, 0, NormWidth);
  296.     Arc(Random(MaxX), Random(MaxY), Random(EndAngle), EndAngle, Random(MaxRadius));
  297.     GetArcCoords(ArcInfo);
  298.     with ArcInfo do
  299.     begin
  300.       Line(X, Y, XStart, YStart);
  301.       Line(X, Y, Xend, Yend);
  302.     end;
  303.   until KeyPressed;
  304.   WaitToGo;
  305. end; { ArcPlay }
  306.  
  307. procedure PutPixelPlay;
  308. { Demonstrate the PutPixel and GetPixel commands }
  309. const
  310.   Seed   = 1962; { A seed for the random number generator }
  311.   NumPts = 2000; { The number of pixels plotted }
  312.   Esc    = #27;
  313. var
  314.   I : word;
  315.   X, Y, Color : word;
  316.   XMax, YMax  : integer;
  317.   ViewInfo    : ViewPortType;
  318. begin
  319.   MainWindow('PutPixel / GetPixel demonstration');
  320.   StatusLine('Esc aborts or press a key...');
  321.  
  322.   GetViewSettings(ViewInfo);
  323.   with ViewInfo do
  324.   begin
  325.     XMax := (x2-x1-1);
  326.     YMax := (y2-y1-1);
  327.   end;
  328.  
  329.   while not KeyPressed do
  330.   begin
  331.     { Plot random pixels }
  332.     RandSeed := Seed;
  333.     I := 0;
  334.     while (not KeyPressed) and (I < NumPts) do
  335.     begin
  336.       Inc(I);
  337.         PutPixel(Random(XMax)+1, Random(YMax)+1, RandColor);
  338.     end;
  339.  
  340.     { Erase pixels }
  341.     RandSeed := Seed;
  342.     I := 0;
  343.     while (not KeyPressed) and (I < NumPts) do
  344.     begin
  345.       Inc(I);
  346.       X := Random(XMax)+1;
  347.       Y := Random(YMax)+1;
  348.       Color := GetPixel(X, Y);
  349.         if Color = RandColor then
  350.           PutPixel(X, Y, 0);
  351.      end;
  352.   end;
  353.   WaitToGo;
  354. end; { PutPixelPlay }
  355.  
  356. procedure PutImagePlay;
  357. { Demonstrate the GetImage and PutImage commands }
  358.  
  359. const
  360.   r  = 20;
  361.   StartX = 100;
  362.   StartY = 50;
  363.  
  364. var
  365.   CurPort : ViewPortType;
  366.  
  367. procedure MoveSaucer(var X, Y : integer; Width, Height : integer);
  368. var
  369.   Step : integer;
  370. begin
  371.   Step := Random(2*r);
  372.   if Odd(Step) then
  373.     Step := -Step;
  374.   X := X + Step;
  375.   Step := Random(r);
  376.   if Odd(Step) then
  377.     Step := -Step;
  378.   Y